<html><head><title>Motivation</title></head>
<body bgcolor="white" text="black">

<table width="95%">
<tr><td width="70%"><h1>Motivation<hr></h1></td>
     <td align="right"><a href="index.html">BACK</a> |
                       <a href="index.html">UP</a> |
                       <a href="mvc.html">NEXT</a></td></tr>
<tr><td>

<h2>Why use WebMacro?</h2>

WebMacro separates concerns about program code from concerns
about the way a page looks: 
<ul>
  <li>HTML should not clutter up program code
  <li>program code should not clutter up HTML
  <li>everyone should own their own work
  <li>no-one should have to work through somebody else
</ul>

Sometimes I sum this up as <i>things you don't care about should
get out of your face</i>.
<p>
WebMacro contains a very focused template script language. It 
gives you a lot of power to lay out your page, but does not 
allow you to write arbitrary program code: a template writer 
never has to look at program code.
<p>
At the same time, it provides a powerful class analyzer that 
can connect up ordinary Java objects with those templates: since
WebMacro does all the work in hooking up your Java objects with
the template, programmers never have to think about layout--they
can stick to writing straight-forward ordinary pure Java code.
<p>
This enforced separation of concerns ensures that programmers 
and template authors can work in parallel, and stay out of 
each others way. Templates are clean representations of the 
page view they construct; and program code is completely 
free of any HTML/view related clutter.


</td></tr>
<tr><td><hr></h1></td>
     <td align="right"><a href="index.html">BACK</a> |
                       <a href="index.html">UP</a> |
                       <a href="mvc.html">NEXT</a></td></tr>
</table>
</body></html>
